1. Field of the Invention
This invention relates to the field of data processing systems. More particularly, this invention relates to the field of floating point adders.
2. Description of the Prior Art
It is known within data processing systems to provide floating point adders which can add and subtract floating point numbers. Such floating point numbers may comprise a sign bit, an exponent field and a mantissa field. An example of the format of floating point numbers and operations of floating point arithmetic may be found within the IEEE 754 Standard.
When adding (or subtracting, which may be achieved by adding with one of the inputs first modified), it is normal that the addend with the smaller exponent will be right shifted to align the decimal point positions prior to the addition being performed. Such an alignment will shift the least significant bits of the mantissa value out of the significance range of the mantissa result and accordingly there will be a loss of precision. This leads to a need to perform appropriate rounding on the result. Various rounding modes are supported in floating point arithmetic. One such rounding mode is round-to-nearest-even. It is known when performing such rounding that a sticky bit should be determined and retained indicating whether any of the bits right shifted out of the significance range when the decimal point positions are aligned has a non-zero value. Such a sticky bit may conventionally be determined by a logical OR operation performed upon all of the bits shifted out of the significance range during the addend mantissa alignment. A problem with this approach is that the OR operation may be many bits wide and introduce a disadvantageous degree of latency in the processing path. Increases in latency can reduce the maximum operating clock frequency that may be used, reduce timing slack and have other negative consequences.
It is known within the field of floating point adders to provide a far-path adder for use when the operands have greater than a predetermined difference in magnitude and a near path adder for use when the operands have less than the predetermined difference in magnitude.